package com.slink.xin.common.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.slink.xin.common.domain.po.Teacher;

public interface TeacherMapper {

	/**
	 * 多参数传递之默认命名方式 分页查询教师信息
	 * 
	 * @Title: getTeachersByPageDefault
	 * @Description: TODO
	 * @param @param sortField 排序字段
	 * @param @param dir 排序方向
	 * @param @param start 起始记录
	 * @param @param limit 记录条数
	 * @param @return
	 * @return List<Teacher>
	 * @throws
	 */
	public List<Teacher> getTeachersByPageDefault(String sortField, String dir,
			int start, int limit);

	public Teacher getById(int id);

	public int add(Teacher teacher);

	/**
	 * 注解实现多参数传递 分页查询教师信息 使用@Param("sort")注解，即可在SQL语句中
	 * 以“#{sort}”的方式引用此方法的sort参数值。 当然也可以在@Param中使用其他名称， 如@Param("mysort")
	 * 
	 * @Title: getTeachersByPage
	 * @Description: TODO
	 * @param @param sortField 排序字段
	 * @param @param dir 排序方向
	 * @param @param start 起始记录
	 * @param @param limit 记录条数
	 * @param @return
	 * @return List<Teacher>
	 * @throws
	 */
	public List<Teacher> getTeachersByPage(@Param("sort") String sortField,
			@Param("dir") String dir, @Param("start") int start,
			@Param("limit") int limit);
	
	/**
	 * 多参数传递之Map方式示例
	* @Title: findTeacherByPageMap 
	* @Description: TODO 
	* @param @param map
	* @param @return    
	* @return List<Teacher>    
	* @throws
	 */
	public List<Teacher> findTeacherByPageMap(Map<String, Object> map);
	
	/**
	 * 多参数传递之混合方式
	* @Title: findTeacherByPageMapMulti 
	* @Description: TODO 
	* @param @param conditions 查询条件
	* @param @param Start 起始记录
	* @param @param limit 记录条数
	* @param @return    
	* @return List<Teacher>    
	* @throws
	 */
	public List<Teacher> findTeacherByPageMapMulti(Map<String, Object> conditions, int Start, int limit);
}
